#ifndef __SCPROTOCOL_HEADER__
#define __SCPROTOCOL_HEADER__
/* what is this ? 
NAME    Simple self-defined communication protocol
DESCRIPTION
   本文件组织了一份简单的自定义通信协议，支持
   - 端口校验：目的端口2B，源端口2B
   - 长度读取：2B
   - 校验和：1B
   - 保留位：1B
   （以上功能除长度外在本文件中一概不支持）
   */


/* header file */
#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <assert.h>

/* miacro definition */
#define SCPMSG_SIZE         2048
#define SCPMSG_HEADERSIZE   8
#define SCPMSG_DATASIZE     2040
#define LASTMESSAGE     128
/* type declaration  */
typedef uint16_t scpdatalen_t;
typedef struct{
    char dest[2];
    char src[2];
    char len[2];
    char checksum[1];
    char reserve[1];
}SCP_header_t; 

/* variable definition  */


/* function declaration */
int scpsend(int fd, const void* buf, size_t msglen, int flags);
int scprecv(int fd, void* buf, size_t msglen, int flags);


#endif
